import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Main {

    static int[] dx={1,-1,0,0};
    static int[] dy={0,0,1,-1};

    static int d=0;
    static int b=0;

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
       int n=sc.nextInt();
       int m= sc.nextInt();



       char[][] arr=new char[n][m];
       for(int i=0;i<n;i++){
           String s=sc.next();
           char[] a=s.toCharArray();
           for(int j=0;j<m;j++){
               arr[i][j]=a[j];
           }


       }




        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
               if(arr[i][j]!='0'){
                   d++;
                   bfs(i,j,arr);

               }
            }
        }

        System.out.print(d+" ");
        System.out.print(b);


    }

    private static void bfs(int i,int j,char[][] arr) {
        int n=arr.length;
        int m=arr[0].length;
        Queue<int[]> q=new LinkedList<>();
        q.add(new int[]{i,j});
        boolean f=false;


        if(arr[i][j]!='1') f=true;
        arr[i][j]='0';

        while(!q.isEmpty()){
            int[] cur=q.poll();
            int sr=cur[0];
            int sc=cur[1];


            for(int k=0;k<4;k++){
                int x=sr+dx[k];
                int y=sc+dy[k];

                if(x>=0&&x<n&&y>=0&&y<m&&arr[x][y]!='0'){
                    if(arr[x][y]!='1') f=true;
                    arr[x][y]='0';
                    q.add(new int[]{x,y});

                }

            }
        }

        if(f) b++;

    }
}

